#include <stdio.h>
int main()
{
    // int i,j;
    // int a[2][3];
    // int max,min,sum;
    // printf("请输入下列二维数组的每个元素：\n");
    // for(i=0;i<2;i++)
    // {
    //     for(j=0;j<3;j++)
    //     {
    //         scanf("%d",&a[i][j]);
    //     }
    // }
    // max = a[0][0];
    // min = a[0][0];
    // for(i=0;i<2;i++)
    // {
    //     for(j=0;j<3;j++)
    //     {
    //         if(a[i][j]>max)
    //         {
    //             max = a[i][j]; //找出最大值
    //         }
    //         if(a[i][j]<min)
    //         {
    //             min = a[i][j];
    //         }
    //         sum = sum + a[i][j];
    //     }
        
    // }
    // printf("该数组的最大值：%d\n最小值:%d\n元素和:%d\n",max,min,sum);


    // int i,j;
    // int b[3][2];
    // int a[2][3];
    // int temp=0;
    // int max,min,sum;
    // printf("请输入下列二维数组的每个元素：");
    // for(i=0;i<2;i++)
    // {
    //     for(j=0;j<3;j++)
    //     {
    //         scanf("%d",&a[i][j]);
    //     }
    // }

    // for(j=0;j<3;j++)
    // {
    //     for(i=0;i<2;i++)
    //     {
    //         temp = a[i][j];
    //         b[j][i] = temp ;
    
    //     }
    //     printf("\n");
    // }
    // for(j=0;j<3;j++)
    // {
    //     for(i=0;i<2;i++)
    //     {
    //         printf("%d",b[j][i]);
    //     }
    //     printf("\n");
        
    // }
    // printf("\n");





    // 求六个同学的总成绩和平均成绩，并保存每个同学的五科成绩
    // int i,j;      
    // double p;  
    // int  a[6][5];
    // int b[6];     //设置一个数组b来记录每个同学的5科成绩和
    // int sum = 0;
    // for(i=0; i<6; i++)
    // {
    //     for(j=0; j<5; j++)
    //     {
    //         scanf("%d",&a[i][j]); //输入6个同学5科的成绩
    //     }
    // }

    // for(i=0; i<6; i++)
    // {
    //     for(j=0; j<5; j++)
    //     {
    //         printf("%d",a[i][j]); //输入6个同学5科的成绩
    //     }
    //     printf("\n");
    // }

    // for(i=0; i<6; i++)
    // {
    //     for(j=0; j<5; j++)
    //     {
    //         sum += a[i][j];  //累加每一个同学每一科的总成绩
    //     }
    //     b[i] = sum;    //记录每个同学的总成绩
    //     sum=0;        //清零sum值，便于记录下一个同学的总成绩
    // }
    // for(i=0;i<6;i++)
    // {
    //     p = 1.0*b[i]/5;
    //     printf("第%d个同学的平均成绩为:%.2f\n",i,p);
    // }



    //三角形
    // int i,j;
    // int a[10][10];                  //定义一个二维数组a
    // a[0][0] = 1;                   //给三角形最上面两行初始化置1
    // a[1][0] = 1,a[1][1] = 1;
    // for(i=2;i<10;i++)               //从三角形第3行开始外循环，用于推动去下一行给元素赋值
    // {                               
    //     for(j=1;j<10;j++)           //从三角形第2行开始内循环，给每行的元素进行赋值
    //     {
    //         a[i][0] = 1;                    //给每一行的第一个元素置1
    //         if(i == j)
    //         {                           //给每一行的最后一个元素置1，并且结束本次循环，进入下一轮循环
    //             a[i][j] = 1;
    //             continue;               
    //         }
    //         a[i][j] = a[i-1][j-1] + a[i-1][j];              //给每行的元素进行赋值的表达式
    //     }
    // }

    // for(i=0;i<10;i++)                       //输出元素
    // {
    //     for(j=0;j<=i;j++)                   //j <= i:限制输出的列数，避免无效数据的输出
    //     {
    //         printf("%d ", a[i][j]);             
    //     }
    //     printf("\n");
    // }
    // return 0;
    


    //找鞍点
    #define N 3
    int a[N][N];    //定义一个二维数组
    int data=-213123;   //记录每一行的最大值
    int i,j,m,data1=0,s;          //设置循环数,data1记录有无鞍点
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            scanf("%d",&a[i][j]); //键盘输入数组元素
        }
    }

    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            if(a[i][j]>data)
            {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
                data = a[i][j];   //通过两层循环历遍每一行的最大值，并存入到data中
                m = j;              //记录每一行最大值列的下标
            }
        }
        for(i=0;i<N;i++)
        {
            if(data>=a[i][m])       //判断每一行的最大值是否是列的最小，只要大于列的任何一个值就跳过
            {
                continue;
            }
            else                    //既是行的最大值又是最值就输出结果
            {
                printf("%d,%d",i,m);
                printf("该数组的鞍点:%d\n",data);
                data1++;
            }
        }
        data = -213123;                 //经过一轮判断后，将记录每一个行最大值的data恢复初始值
    }
    if(data1 ==0 )
    {
        printf("该数组没有鞍点\n");
    }
}



